iT邦幫忙

3

MangoDisk:用 Rust 打造開源、安全的跨平台磁碟清理工具

  • 分享至 

  • xImage
  •  

一、專案資訊

  • 專案名稱:MangoDisk
  • 專案簡介:一套支援 macOS 與 Windows 的開源磁碟清理工具。它會在本機掃描系統快取、開發工具快取、專案建置成果、大型檔案、重複檔案與應用程式殘留,讓使用者確認路徑、容量和風險後再決定是否清理。
  • 開發狀態:已上線並持續更新,目前提供桌面應用程式與 CLI。
  • 授權方式:GNU GPL v3.0。

MangoDisk 繁體中文介面與深度清理結果

MangoDisk 的繁體中文介面;圖中的容量來自測試環境。

二、必要連結

三、技術實作內容

開發動機

身為開發者,我的電腦長期放著 Node.js、Rust、Xcode、Gradle、Python 和各種測試專案。真正讓磁碟空間慢慢消失的,通常不是單一大型檔案,而是散落在不同位置的建置成果、套件快取、記錄檔與應用程式殘留。

前幾天我檢查 MangoDisk 專案本身的磁碟用量,Rust 的 target 已累積到 27 GB;同一台電腦上的 Cargo registry 壓縮快取只有 189 MB。兩者都可以重新產生,但清理後的代價不同:前者需要重新編譯,後者可能需要重新下載相依套件。

我以前用腳本處理這些資料,但路徑和工具版本會改變,腳本也很難清楚呈現即將刪除的內容和後果。因此我開始開發 MangoDisk,希望先整理出空間去向,再讓使用者決定要不要清理。

技術架構

  • Rust 核心:負責檔案系統掃描、容量統計、規則比對、安全驗證與清理執行。
  • Tauri 2:負責桌面執行環境、前後端呼叫與系統整合。
  • Vue 3 + TypeScript:呈現掃描分類、路徑、容量、風險與使用者選取狀態。
  • 共用引擎:桌面應用程式和 CLI 共用相同的 Rust 清理引擎,避免兩個入口出現不同的安全判斷。

MangoDisk 以樹狀圖與清單呈現 Rust 掃描後的磁碟空間分布

Rust 負責掃描與統計,介面再用樹狀圖和清單呈現資料夾的空間佔比。

核心邏輯與技術挑戰

對磁碟工具來說,困難的不是列出檔案,而是判斷資料的用途、可恢復性和安全邊界。同樣被稱為快取的資料,可能是能立即重建的暫存內容,也可能混有設定、憑證或使用者檔案。

MangoDisk 因此把清理流程拆成:

唯讀掃描 → 規則比對 → 分類與風險提示 → 使用者選取 → 執行前驗證 → 清理

掃描階段不會自動刪除。結果會先顯示類別、容量、路徑和風險;使用者確認選取內容後,才會執行清理。CLI 的預設命令也只掃描,實際刪除需要明確指定動作並完成確認。

另一個挑戰是讓規則可以被審查。一般檔案系統清理與專案建置成果會用經過建置期驗證的 TOML 描述。以下是 Rust 專案規則的精簡片段:

id = "project.rust-build-artifacts"
schema_version = 1
platforms = ["macos", "windows"]
risk = "recoverable"
default_selected = false

[match]
file_names_any = ["Cargo.toml"]

[[artifacts]]
kind = "relativeDirectory"
path = "target"

這條規則先用 Cargo.toml 確認專案身分,只比對專案內的相對路徑,風險標示為 recoverable,而且預設不選取。建置時會驗證 schema、平台、路徑邊界、風險等級和佐證資料,不符合限制的規則無法進入正式規則庫。

解決方案

我目前用四個原則控制清理風險:

  1. 規則必須有清楚邊界:排除設定、憑證、資料庫、原始碼、個人檔案與系統保護路徑。
  2. 規則必須能追溯:先核對 Apple、Microsoft 或工具廠商文件,再在對應的 macOS 或 Windows 環境實機驗證。
  3. 特殊情況使用專用 cleaner:需要系統命令、應用程式 API、共用資源協調或刪除前即時驗證時,不放寬一般規則,而是由 Rust 撰寫專用處理流程。
  4. 把決定權留給使用者:掃描結果先完整呈現;對大型檔案和個人資料,MangoDisk 只協助找出空間去向,不替使用者決定是否刪除。

如果無法清楚說明資料來源與刪除後果,我會先不把規則加入正式版本。完整規則與修改紀錄都公開在 GitHub:MangoDisk 清理規則庫

MangoDisk 深度清理依類別顯示掃描結果與選取狀態

掃描結果保留類別、容量與選取狀態,讓使用者在清理前自行確認。

我是 MangoDisk 的開發者 Harry。專案仍在持續增加和驗證跨平台清理規則,如果你有實際遇到的磁碟空間問題,或發現某個工具的快取與官方說明不一致,歡迎到 GitHub 提供可驗證的資訊。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言